生成api, rpc, model命令
生成api服务
goctl api -o user.api
goctl api go -api user.api -dir .
生成rpc服务
goctl rpc -o user.proto
goctl rpc protoc user.proto --go_out=./types --go-grpc_out=./types --zrpc_out=.
生成model命令
执行命令后,会覆盖之前的生成文件.
命令里 加 -c
是代缓存的,不加c是不带缓存的
方式一
goctl model mysql ddl -src user.sql -dir . -c
注意: 执行这条命令, 生成的文件会覆盖你之前的"生成文件", 即使有改动,也会被覆盖. 要特别注意,以免辛苦写的代码木有了.
方式二
goctl model mysql datasource -url="root:password@tcp(127.0.0.1)/数据库名" -table="表名" -c -dir .
或
goctl model mysql datasource -url="user:password@tcp(127.0.0.1:3306)/database" -table="*" -dir="./model"
注意: 执行这条命令, 生成的文件会覆盖你之前的"生成文件", 即使有改动,也会被覆盖. 要特别注意,以免辛苦写的代码木有了.
goctl model mysql datasource -h
NAME:
goctl.exe model mysql datasource - generate model from datasource
USAGE:
goctl.exe model mysql datasource [command options] [arguments...]
OPTIONS:
--url value the data source of database,like "root:password@tcp(127.0.0.1:3306)/database"
--table value, -t value the table or table globbing patterns in the database
--cache, -c generate code with cache [optional]
--dir value, -d value the target dir
--style value the file naming format, see [https://github.com/zeromicro/go-zero/tree/master/tools/goctl/config/readme.md]
--idea for idea plugin [optional]
--home value the goctl home path of the template, --home and --remote cannot be set at the same time, if they are, --remote has higher priority
--remote value the remote git repo of the template, --home and --remote cannot be set at the same time, if they are, --remote has higher priority
The git repo directory must be consistent with the https://github.com/zeromicro/go-zero-template directory structure
--branch value the branch of the remote repo, it does work with --remote
解决方法 :
- 生的时候会生成俩个文件,有一个是以
_gen.go
结尾的, 把没有_gen.go
的文件删除, - 修改以
_gen.go
结尾的文件名, 把_gen
去掉 - 把里面 new???Model的方法 改为大写开头的
New???Model
- 把里面 type下面的 interface 的接口名字改成大写
- 这样再编辑的时候就不会被覆盖了.
- _gen.go开头有个一行
// Code generated by goctl. DO NOT EDIT!
也去掉, 这是表示生成的时候不让编辑